package visiopuce.action;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;

import visiopuce.ICommandIds;

public class OuvrirDossierAction extends Action {
	private final IWorkbenchWindow window;
	private int instanceNum = 0;
	private final String viewId;

	public OuvrirDossierAction(IWorkbenchWindow window, String label, String viewId) {
		this.window = window;
		this.viewId = viewId;
		setText(label);
		// The id is used to refer to the action in a menu or toolbar
		setId(ICommandIds.CMD_OUVRIR_DOSSIER);
		// Associate the action with a pre-defined command, to allow key
		// bindings.
		setActionDefinitionId(ICommandIds.CMD_OUVRIR_DOSSIER);
		setText("Ouvrir un dossier");
		setImageDescriptor(visiopuce.Activator.getImageDescriptor("/icons/dossier_voir.png"));
	}

	public void run() {
		if (window != null) {
			try {
				window.getActivePage().showView(viewId,
						Integer.toString(instanceNum++),
						IWorkbenchPage.VIEW_ACTIVATE);
			} catch (PartInitException e) {
				MessageDialog.openError(window.getShell(), "Error",
						"Erreur lors de l'ouverture de la vue du dossier :" + e.getMessage());
			}
		}
	}
}